<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Gallio.NAntTasks</name>
    </assembly>
    <members>
        <member name="T:Gallio.NAntTasks.GallioTask">
             <summary>
             A NAnt task that provides support for running Gallio tests.
             </summary>
             <remarks>
             <para>
             In order for NAnt to find this task, either the Gallio.NAntTasks.dll assembly needs
             to be put in NAnt's bin folder, or it must be loaded with the loadtasks directive:
             <code><![CDATA[
                <loadtasks assembly="[pathtoassembly]\Gallio.NAntTasks.dll" />
             ]]></code>
             </para>
             </remarks>
             <example>
             The following code is an example build file that shows how to load the task, specify the test files
             and assemblies and set some of the task's properties:
             <code><![CDATA[
                <?xml version="1.0" ?>
                <project name="TestProject" default="RunTests">
                <!-- This is needed by NAnt to locate the Gallio task -->
                <loadtasks assembly="[pathtoassembly]\Gallio.NAntTasks.dll" />
                <target name="RunTests">
                 <gallio result-property="ExitCode" failonerror="false" filter="Type=SomeFixture" >
                  <files>
                    <!-- Specify the tests files and assemblies -->
                    <include name="[Path-to-test-assembly1]/TestAssembly1.dll" />
                    <include name="[Path-to-test-assembly2]/TestAssembly2.dll" />
                    <include name="[Path-to-test-script1]/TestScript1_spec.rb" />
                    <include name="[Path-to-test-script2]/TestScript2.xml" />
                  </files>
                 </gallio>
                 <fail if="${ExitCode != '0'}" >The return code should have been 0!</fail>
                </target>
            
                </project>
             ]]></code>
             </example>
        </member>
        <member name="M:Gallio.NAntTasks.GallioTask.#ctor">
            <summary>
            Default constructor.
            </summary>
        </member>
        <member name="M:Gallio.NAntTasks.GallioTask.ExecuteTask">
            <summary>
            Executes the task.
            </summary>
        </member>
        <member name="M:Gallio.NAntTasks.GallioTask.RunLauncher(Gallio.Runner.TestLauncher)">
            <exclude />
            <summary>
            Provided so that the unit tests can override test execution behavior.
            </summary>
        </member>
        <member name="M:Gallio.NAntTasks.GallioTask.SetResultProperty(System.IConvertible)">
            <summary>
            Checks the result code of the tests execution and performs the
            corresponding action.
            </summary>
            <param name="resultCode">The result code returned by the Run method of the
            TestRunnerHelper class.</param>
        </member>
        <member name="P:Gallio.NAntTasks.GallioTask.Files">
            <summary>
            The list of test files, projects and assemblies to execute. 
            </summary>
            <remarks>
            <para>
            Wildcards may be used.
            </para>
            <para>
            This is required.
            </para>
            </remarks>
            <example>
            The following example shows how to specify the test files, projects and assemblies
            (for a more complete example please see the <see cref="T:Gallio.NAntTasks.GallioTask"/> task documentation):
            <code><![CDATA[
            <gallio>
                <files>
                   <!-- Specify the tests files, projects and assemblies -->
                   <include name="[Path-to-test-assembly1]/TestAssembly1.dll" />
                   <include name="[Path-to-test-assembly2]/TestAssembly2.dll" />
                   <include name="[Path-to-test-script1]/TestScript1_spec.rb" />
                   <include name="[Path-to-test-script2]/TestScript2.xml" />
                </files>
            </gallio>
            ]]></code>
            </example>
        </member>
        <member name="P:Gallio.NAntTasks.GallioTask.HintDirectories">
            <summary>
            The list of directories used for loading referenced assemblies and other dependent resources.
            </summary>
            <example>
            The following example shows how to specify the hint directories:
            <code><![CDATA[
            <gallio>
                <hint-directories>
                    <include name="C:\SomeFolder\AnotherFolder" />
                    <include name="../somefolder" />
                </hint-directories>
            </gallio>
            ]]></code>
            </example>
        </member>
        <member name="P:Gallio.NAntTasks.GallioTask.PluginDirectories">
            <summary>
            Additional Gallio plugin directories to search recursively.
            </summary>
            <example>
            The following example shows how to specify the plugins directories:
            <code><![CDATA[
            <gallio>
                <plugin-directories>
                    <include name="C:\SomeFolder\AnotherFolder" />
                    <include name="../somefolder" />
                </plugin-directories>
            </gallio>
            ]]></code>
            </example>
        </member>
        <member name="P:Gallio.NAntTasks.GallioTask.ApplicationBaseDirectory">
            <summary>
            Gets or sets the relative or absolute path of the application base directory,
            or null to use a default value selected by the consumer.
            </summary>
            <remarks>
            <para>
            If relative, the path is based on the current working directory,
            so a value of "" causes the current working directory to be used.
            </para>
            <para>
            The default is null.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.NAntTasks.GallioTask.WorkingDirectory">
            <summary>
            Gets or sets the relative or absolute path of the working directory
            or null to use a default value selected by the consumer.
            </summary>
            <remarks>
            <para>
            If relative, the path is based on the current working directory,
            so a value of "" causes the current working directory to be used.
            </para>
            <para>
            The default is null.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.NAntTasks.GallioTask.ShadowCopy">
            <summary>
            Enables shadow copying when set to true.
            </summary>
            <remarks>
            <para>
            Shadow copying allows the original assemblies to be modified while the tests are running.
            However, shadow copying may occasionally cause some tests to fail if they depend on their original location.
            </para>
            <para>
            The default is false.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.NAntTasks.GallioTask.Debug">
            <summary>
            Attaches the debugger to the test process when set to true.
            </summary>
            <remarks>
            <para>
            The default is false.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.NAntTasks.GallioTask.RuntimeVersion">
            <summary>
            Gets or sets the version of the .Net runtime to use for running tests.
            </summary>
            <remarks>
            <para>
            For the CLR, this must be the name of one of the framework directories in %SystemRoot%\Microsoft.Net\Framework.  eg. 'v2.0.50727'.
            </para>
            <para>
            The default is null which uses the most recent installed and supported framework.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.NAntTasks.GallioTask.ReportTypes">
            <summary>
            A list of the types of reports to generate, separated by semicolons. 
            </summary>
            <remarks>
            <list type="bullet">
            <item>The types supported "out of the box" are: Html, Html-Inline, Text, XHtml,
            XHtml-Inline, Xml, and Xml-Inline, but more types could be available as plugins.</item>
            <item>The report types are not case sensitives.</item>
            </list>
            </remarks>
            <example>
            In the following example reports will be generated in both HTML and XML format.
            <code><![CDATA[
            <gallio report-types="html;xml">
                <!-- More options -->
            </gallio>
            ]]></code>
            </example>
        </member>
        <member name="P:Gallio.NAntTasks.GallioTask.ReportArchive">
            <summary>
            Sets the report archive mode.
            </summary>
            <remarks>
            <para>
            The supported modes are:
            <list type="bullet">
            <item>Normal (default)</item>
            <item>Zip</item>
            </list>
            </para>
            </remarks>
            <example>
            In the following example, reports will be enclosed in a zip file:
            <code>
            <![CDATA[
            <gallio report-archive="zip">
                <!-- More options -->
            </gallio>
            ]]>
            </code>
            </example>
        </member>
        <member name="P:Gallio.NAntTasks.GallioTask.ReportNameFormat">
            <summary>
            Sets the format string to use to generate the reports filenames.
            </summary>
            <remarks>
            <para>
            Any occurence of {0} will be replaced by the date, and any occurrence of {1} by the time.
            The default format string is test-report-{0}-{1}.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.NAntTasks.GallioTask.ReportDirectory">
            <summary>
            Sets the name of the directory where the reports will be put.
            </summary>
            <remarks>
            <para>
            The directory will be created if it doesn't exist. Existing files will be overwritten.
            The default report directory is "Reports".
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.NAntTasks.GallioTask.ShowReports">
            <summary>
            Sets whether to show generated reports in a window using the default system application
            registered to the report file type.
            </summary>
        </member>
        <member name="P:Gallio.NAntTasks.GallioTask.RunnerType">
            <summary>
            Sets the type of test runner to use.
            </summary>
            <remarks>
            <list type="bullet">
            <item>The types supported "out of the box" are: Local, IsolatedAppDomain
            and IsolatedProcess (default), but more types could be available as plugins.</item>
            <item>The runner types are not case sensitive.</item>
            </list>
            </remarks>
        </member>
        <member name="P:Gallio.NAntTasks.GallioTask.RunnerExtensions">
            <summary>
            Specifies the type, assembly, and parameters of custom test runner
            extensions to use during the test run.
            </summary>
            <remarks>
            <para>
            The value must be in the form '[Namespace.]Type,Assembly[;Parameters]'.
            </para>
            <para>
            eg. 'FancyLogger,MyCustomExtensions.dll;SomeParameters'
            </para>
            </remarks>
            <example>
            The following example runs tests using a custom logger extension:
            <code><![CDATA[
            <gallio>
                <runner-extension value="FancyLogger,MyExtensions.dll;ColorOutput,FancyIndenting" />
                <!-- More options -->
            </gallio>
            ]]></code>
            </example>
        </member>
        <member name="P:Gallio.NAntTasks.GallioTask.RunnerProperties">
            <summary>
            Specifies option property key/value pairs for the test runner.
            </summary>
            <example>
            The following example specifies some extra NCover arguments.
            <code><![CDATA[
            <gallio>
                <runner-property value="NCoverArguments='//eas Gallio'" />
                <!-- More options -->
            </gallio>
            ]]></code>
            </example>
        </member>
        <member name="P:Gallio.NAntTasks.GallioTask.ReportFormatterProperties">
            <summary>
            Specifies option property key/value pairs for the report formatter.
            </summary>
            <example>
            The following example changes the default attachment content disposition for the reports.
            <code><![CDATA[
            <gallio>
                <report-formatter-property value="AttachmentContentDisposition=Absent" />
                <!-- More options -->
            </gallio>
            ]]></code>
            </example>
        </member>
        <member name="P:Gallio.NAntTasks.GallioTask.DoNotRun">
            <summary>
            Sets whether to load the tests but not run them.
            </summary>
            <remarks>
            <para>
            This option may be used to produce a
            report that contains test metadata for consumption by other tools.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.NAntTasks.GallioTask.IgnoreAnnotations">
            <summary>
            Sets whether to ignore annotations when determining the result code.
            </summary>
            <remarks>
            <para>
            If false (default), then error annotations, usually indicative of broken tests, will cause
            a failure result to be generated.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.NAntTasks.GallioTask.EchoResults">
            <summary>
            Sets whether to echo results to the screen as tests finish.
            </summary>
            <remarks>
            <para>
            If this option is set to true, the default, test results are echoed to the console
            in varying detail depending on the current verbosity level.  Otherwise
            only the final summary statistics are displayed.
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.NAntTasks.GallioTask.RunTimeLimit">
            <summary>
            Sets the maximum amount of time (in seconds) the tests can run 
            before they are canceled.
            </summary>
            <remarks>
            <para>
            The default is an infinite time to run. 
            </para>
            </remarks>
        </member>
        <member name="P:Gallio.NAntTasks.GallioTask.ResultProperty">
            <summary>
            Sets the name of a NAnt property in which the exit code of the tests execution
            should be stored.
            </summary>
            <remarks>
            <para>
            Only of interest if FailOnError is set to false.
            </para>
            </remarks>
            <example>
            <code><![CDATA[
            <target name="RunTests">
                <gallio result-property="ExitCode" failonerror="false">
                    <!-- Include test assemblies -->
                </gallio>
                <fail if="${ExitCode != 0}" >The return code should have been 0!</fail>
            </target>
            ]]></code>
            </example>
        </member>
        <member name="P:Gallio.NAntTasks.GallioTask.StatisticsPropertiesPrefix">
            <summary>
            Sets the prefix that will be used for the statistics result properties.
            </summary>
            <remarks>
            <para>
            The following properties are available:
            <list type="bullet">
            <item><term>AssertCount</term><description>Gets the number of assertions evaluated.</description></item>
            <item><term>FailedCount</term><description>Gets the total number of test cases that were run and failed.</description></item>
            <item><term>InconclusiveCount</term><description>Gets the total number of test cases that ran and were inconclusive.</description></item>
            <item><term>PassedCount</term><description>Gets the total number of test cases that were run and passed.</description></item>
            <item><term>SkippedCount</term><description>Gets the total number of test cases that did not run because they were skipped.</description></item>
            <item><term>RunCount</term><description>Gets the total number of test cases that were run.</description></item>
            <item><term>TestCount</term><description>Gets the total number of test cases.</description></item>
            <item><term>StepCount</term><description>Gets the total number of test steps.</description></item>
            </list>
            </para>
            </remarks>
            <example>
            The following example shows how to use the result-properties-prefix property:
            <code><![CDATA[
            <target name="RunTests">
                <gallio statistics-properties-prefix="gallio.">
                    <files>
                        <include name="SomeAssembly.dll" />
                    </files>
                </gallio>
                <echo message="AssertCount = ${gallio.AssertCount}" />
                <echo message="FailedCount = ${gallio.FailedCount}" />
                <echo message="InconclusiveCount = ${gallio.InconclusiveCount}" />
                <echo message="PassedCount = ${gallio.PassedCount}" />
                <echo message="SkippedCount = ${gallio.SkippedCount}" />
                <echo message="RunCount = ${gallio.RunCount}" />
                <echo message="TestCount = ${gallio.TestCount}" />
                <echo message="StepCount = ${gallio.StepCount}" />
            </target>
            ]]></code>
            </example>
        </member>
        <member name="P:Gallio.NAntTasks.GallioTask.Filter">
            <summary>
            <para>
      Sets the filter set to apply, which consists of a sequence of one or more inclusion
      or exclusion filter rules prefixed using 'include' (optional) or 'exclude'.
    </para>
            </summary>
            <remarks>
            <para>
      A filter rule consists of zero or more filter expressions
      that may be combined using 'and', 'or', and 'not' and grouped with
      parentheses.  A filter expression consists of a filter key followed by one or
      more comma-delimited matching values in the form 'key: value, "quoted value",
      /regular expression/'.
    </para><para>
      The filter grammar is defined as follows:
    </para><para>
      <code><![CDATA[
     INCLUDE          ::= "include"              # Not case-sensitive
     EXCLUDE          ::= "exclude"              # Not case-sensitive
	
     OR               ::= "or"                   # Not case-sensitive
     AND              ::= "and"                  # Not case-sensitive
     NOT              ::= "not"                  # Not case-sensitive

     <unquotedWord>   ::= [^:,*()/\"']+
    
     <quotedWord>     ::= '"' .* '"'             # String delimited by double quotation marks
                      | "'" .* "'"               # String delimited by single quotation marks
               
     <word>           ::= <unquotedWord>
                      | <quotedWord>
                      
     <regexWord>      ::= "/" .* "/"             # Regular expression
                      | "/" .* "/i"              # Case-insensitive regular expression
                      
     <key>            ::= <word>
    
     <value>          ::= <word>                 # Value specified by exact string
                      | <regexWord>              # Value specified by regular expression
    
     <matchSequence>  ::= <value> (',' <value>)* # One or more comma-separated values
    
     <filterExpr>     ::= "*"                    # "Any"
                      | <key> ":" matchSeq>
                      | <filterExpr> OR filterExpr>   # Combine filter expressions with OR
                      | <filterExpr> AND filterExpr>  # Combine filter expressions with AND
                      | NOT <filterExpr>         # Negate filter expression
                      | "(" <filterExpr> ")"     # Grouping filter expression
		      
     <filterRule>     ::= <filterExpr>           # Inclusion rule (default case)
                      | INCLUDE <filterExpr>     # Inclusion rule
                      | EXCLUDE <filterExpr>     # Exclusion rule

     <filterSet>      ::= <filterRule>           # Filter set consists of at least one filter rule.
                      | <filterRule> <filterSet> # But may be a sequence of rules.
     ]]></code>
    </para><list type="bullet">
      <item>By default this property takes the value "*", which means the "Any" filter will be applied.</item>
      <item>
        The operator precedence is, from highest to lowest: NOT, AND, and OR. All these operators are
        left-associative.
      </item>
      <item>
        The commas used to separate the values are interpreted as OR operators, so "Type:Fixture1,Fixture2"
        is equivalent to "Type:Fixture1 or Type:Fixture2".
      </item>
      <item>
        White-space is ignored outside quoted strings, so "Type:Fixture1|Type:Fixture2" is equivalent
        to "Type : Fixture1 | Type : Fixture2".
      </item>
      <item>
        Commas, colons, slashes, backslashes and quotation marks can be escaped with a backslash. For
        example, \' will be interpreted as '. Using a single backslash in front of any other character
        is invalid.
      </item>
      <item>
        Currently the following filter keys are recognized:
        <list type="bullet">
          <item>Id: Filter by id.</item>
          <item>Name: Filter by name.</item>
          <item>Assembly: Filter by assembly name.</item>
          <item>Namespace: Filter by namespace name.</item>
          <item>Type: Filter by type name, including inherited types.</item>
          <item>ExactType: Filter by type name, excluding inherited types.</item>
          <item>Member: Filter by member name.</item>
          <item>
            *: All other names are assumed to correspond to metadata keys. See <see cref="T:Gallio.Model.MetadataKeys"/> for standard metadata keys.  Common keys are: AuthorName, Category, Description, Importance, TestsOn.  <seealso cref="T:Gallio.Model.MetadataKeys"/>
          </item>
        </list>
      </item>      
    </list>
            </remarks>
            <example>
            <para>
      Assuming the following fixtures have been defined:
    </para><code><![CDATA[
      [TestFixture]
      [Category("UnitTest")]
      [Author("AlbertEinstein")]
      public class Fixture1
      {
        [Test]
        public void Test1()
        {
        }
        [Test]
        public void Test2()
        {
        }
      }

      [TestFixture]
      [Category("IntegrationTest")]
      public class Fixture2
      {
        [Test]
        public void Test1()
        {
        }
        [Test]
        public void Test2()
        {
        }
      }
    ]]></code><para>The following filters could be applied:</para><list type="bullet">
      <item>
        <term>Type: Fixture1</term>
        <description>All the tests within Fixture1 will be run.</description>
      </item>

      <item>
        <term>Member: Test1</term>
        <description>Only Fixture1.Test1 and Fixture2.Test1 will be run.</description>
      </item>

      <item>
        <term>Type: Fixture1, Fixture2</term>
        <description>All the tests within Fixture1 or Fixture2 will be run.</description>
      </item>

      <item>
        <term>Type:Fixture1 or Type:Fixture2</term>
        <description>All the tests within Fixture1 or Fixture2 will be run.</description>
      </item>

      <item>
        <term>Type:Fixture1, Fixture2 and Member:Test2</term>
        <description>Only Fixture1.Test2 and Fixture2.Test2 will be run.</description>
      </item>

      <item>
        <term>Type:/Fixture*/ and Member:Test2</term>
        <description>Only Fixture1.Test2 and Fixture2.Test2 will be run.</description>
      </item>

      <item>
        <term>AuthorName:AlbertEinstein</term>
        <description>All the tests within Fixture1 will be run because its author attribute is set to "AlbertEinstein".</description>
      </item>

      <item>
        <term>Category: IntegrationTest</term>
        <description>All the tests within Fixture2 will be run because its category attribute is set to "IntegrationTest".</description>
      </item>

      <item>
        <term>("Type": 'Fixture1' and "Member":/Test*/) or (Type : Fixture2 and Member: /Test*/)</term>
        <description>All the tests will be run. This example also shows that you can enclose key and
        values with quotation marks, and group expressions with parentheses.</description>
      </item>

      <item>
        <term>exclude AuthorName: AlbertEinstein</term>
        <description>All the tests within Fixture2 will be run because its author attribute is not set to "AlbertEinstein".</description>
      </item>
      
      <item>
        <term>exclude Type: Fixture2 include Member: Test2</term>
        <description>Only Fixture1.Test2 will be run because Fixture2 was excluded from consideration before the inclusion rule was applied.</description>
      </item>
    </list>
            </example>
        </member>
        <member name="P:Gallio.NAntTasks.GallioTask.Verbosity">
            <summary>
            Controls the level of information logged.
            </summary>
            <remarks>
            <para>
            The default is "Normal".
            </para>
            </remarks>
            <example>
            <code><![CDATA[
            <target name="RunTests">
                <gallio verbosity="Quiet" failonerror="false">
                    <!-- Include test files -->
                </gallio>
                <fail if="${ExitCode != 0}" >The return code should have been 0!</fail>
            </target>
            ]]></code>
            </example>
        </member>
        <member name="T:Gallio.NAntTasks.NamespaceDoc">
            <summary>
            The Gallio.NAntTasks namespace contains NAnt tasks for Gallio.
            </summary>
        </member>
        <member name="T:Gallio.NAntTasks.TaskLogger">
            <exclude/>
            <summary>
            An <see cref="T:Gallio.Runtime.Logging.ILogger"/> implementation that logs messages to a <see cref="T:NAnt.Core.Task"/> object.
            </summary>
        </member>
        <member name="T:Gallio.NAntTasks.Properties.Resources">
            <summary>
              A strongly-typed resource class, for looking up localized strings, etc.
            </summary>
        </member>
        <member name="P:Gallio.NAntTasks.Properties.Resources.ResourceManager">
            <summary>
              Returns the cached ResourceManager instance used by this class.
            </summary>
        </member>
        <member name="P:Gallio.NAntTasks.Properties.Resources.Culture">
            <summary>
              Overrides the current thread's CurrentUICulture property for all
              resource lookups using this strongly typed resource class.
            </summary>
        </member>
        <member name="P:Gallio.NAntTasks.Properties.Resources.DefaultReportNameFormat">
            <summary>
              Looks up a localized string similar to test-report-{0}-{1}.
            </summary>
        </member>
        <member name="P:Gallio.NAntTasks.Properties.Resources.TaskNameAndVersion">
            <summary>
              Looks up a localized string similar to Gallio NAnt Task - Version {0}.
            </summary>
        </member>
        <member name="P:Gallio.NAntTasks.Properties.Resources.TestExecutionFailed">
            <summary>
              Looks up a localized string similar to Test Execution Failed.
            </summary>
        </member>
    </members>
</doc>
